package cn.yudao.basic.controller;

import cn.yudao.basic.exception.BusinessException;
import cn.yudao.basic.utils.AjaxResult;
import cn.yudao.basic.utils.BaiduImgUtils;
import cn.yudao.basic.utils.FastdfsUtil;
import org.apache.commons.io.FilenameUtils;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;

@RestController
@RequestMapping("/fastdfs")
public class FastDfsController {

    @PostMapping
    public AjaxResult save(@RequestPart(value = "file", required = true) MultipartFile file){
        try {

//            Boolean aBoolean = BaiduImgUtils.ImgCensor(file);
//            if (!aBoolean){
//                return AjaxResult.me().setSuccess(false).setMessage("图片违规");
//
//            }
            // 得到文件的byte数组
            byte[] bytes = file.getBytes();
            // 得到上传的文件名
            String originalFilename = file.getOriginalFilename();
            // 得到文件的后缀
            String extension = FilenameUtils.getExtension(originalFilename);
            // 使用工具类对文件进行上传到Fastdfs上
            String upload = FastdfsUtil.upload(file,bytes, extension);


            return AjaxResult.me().setResult(upload);
        }
        catch (Exception e){
            return AjaxResult.me().setSuccess(false).setMessage(e.getMessage());
        }
    }

    @DeleteMapping
    public AjaxResult delete(@RequestParam(value = "path",required = true) String path){
        try {
            System.out.println(path);
            // 拿到名称
            String filePath = path.substring(1);
            System.out.println(filePath);
            // 拿到第一个卷名
            String grupd = filePath.substring(0, filePath.indexOf("/"));
            System.out.println(grupd);
            // 拿到文件的路径名
            String fileName = filePath.substring(filePath.indexOf("/") + 1);
            System.out.println(fileName);
            // 调用方法删除存放在Fastdfs分布式系统中的文件
            FastdfsUtil.delete(grupd, fileName);
            return new AjaxResult();
        } catch (Exception e) {
            e.printStackTrace();
            return AjaxResult.me().setSuccess(false).setMessage("系统繁忙");
        }
    }



}
